-- 计算玩家命中

return function(user)
    local accuracy = user.dbase:query("accuracy", 0);

    -- 1. 百分比加成
    local propId = PropM.getPropId("attrib");
    local prop = PropM.combine(user, propId, "accuracy");
    accuracy = PropM.apply(prop, accuracy);

    -- 2. 绝对值加成
    propId = PropM.getPropId("attrib2");
    prop = PropM.combine(user, propId, "accuracy");
    accuracy = PropM.apply(prop, accuracy);

    -- 3. 被削弱
    prop = PropM.combine(user, "reduce_attrib", "accuracy");
    accuracy = PropM.apply(prop, accuracy);

    -- 4. 被削弱
    prop = PropM.combine(user, "reduce_attrib2", "accuracy");
    accuracy = PropM.apply(prop, accuracy);

    -- 5. 被僵化
    local props = PropM.fetchProps(user, "rigid");
    for _, prop in ipairs(props) do
        accuracy = PropM.trigger(user, prop[1], prop[2], accuracy);
    end

    return accuracy;
end